<!--
 * @Descripttion: 
 * @Version: 
 * @Author: gaohj
 * @Date: 2022-10-27 15:43:05
 * @LastEditors: Please set LastEditors
 * @LastEditTime: 2022-10-27 16:44:55
-->
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 一个数组中最小值的索引

        var arr2 = [9, 3, 6, 10, 2, 5, 11, 4, 1, 7];
        document.write('原始数组:', arr2, '<br />');
        var minIndex = 0; // 假设数组的第一个元素的索引值
        // 最小  从下标1 直到数组的最后一个元素
        // 挨个跟下标0的元素进行比较 
        for (var i = 1; i < arr2.length; i++) {
            if (arr2[i] < arr2[minIndex]) {
                minIndex = i;
            }
        }
        document.write('第一轮最小值的索引是:', minIndex, '<br />');

        // 只有for循环结束以后我才能找到最小的值得下标
        var temp = arr2[minIndex];
        arr2[minIndex] = arr2[0];
        arr2[0] = temp;

        // 1 3 6 10 2 5 11 4 9 7 
        document.write('第一轮之后数组:', arr2, '<br />');

        // 第二轮 忽略第一个数字  
        // 下标1的数字最小 然后从下标2一直到数组末尾挨个
        // 跟下标1的数据进行比较 
        var minIndex = 1; // 假设数组的第二个元素的索引值
        // 最小  从下标2直到数组的最后一个元素
        // 挨个跟下标1的元素进行比较 
        for (var i = 2; i < arr2.length; i++) {
            if (arr2[i] < arr2[minIndex]) {
                minIndex = i;
            }
        }
        document.write('第二轮最小值的索引是:', minIndex, '<br >');
        // 只有for循环结束以后我才能找到最小的值得下标
        var temp = arr2[minIndex];
        arr2[minIndex] = arr2[1];
        arr2[1] = temp;

        document.write('第二轮之后数组:', arr2, '<br />');

        var minIndex = 2; // 假设数组的第3个元素的索引值
        // 最小  从下标3直到数组的最后一个元素
        // 挨个跟下标2的元素进行比较 
        for (var i = 3; i < arr2.length; i++) {
            if (arr2[i] < arr2[minIndex]) {
                minIndex = i;
            }
        }
        document.write('第3轮最小值的索引是:', minIndex, '<br >');
        // 只有for循环结束以后我才能找到最小的值得下标
        var temp = arr2[minIndex];
        arr2[minIndex] = arr2[2];
        arr2[2] = temp;

        document.write('第3轮之后数组:', arr2, '<br />');



        // i          第几轮  假设最小的索引是  循环开始的位置下一个到最后  跟下标位置交换

        // j = 0       1       0                   1                       0

        // j = 1       2       1                   2                       1
        // j = 2       3       2                   3                       2
        for (var j = 0; j < arr2.length - 1; j++) {
            var minIndex = j; // 假设最小的索引
            // 最小  从下标3直到数组的最后一个元素
            // 挨个跟下标2的元素进行比较 
            for (var i = j+1; i < arr2.length; i++) {
                if (arr2[i] < arr2[minIndex]) {
                    minIndex = i;
                }
            }
            document.write('第'+j+'轮最小值的索引是:', minIndex, '<br >');
            // 只有for循环结束以后我才能找到最小的值得下标
            var temp = arr2[minIndex];
            arr2[minIndex] = arr2[j];
            arr2[j] = temp;

            document.write('第'+j+'轮之后数组:', arr2, '<br />');

        }
    </script>
</body>

</html>